package com.egoo.ticket.server.service;


import com.egoo.ticket.server.pojo.dto.PageOutputDto;
import com.egoo.ticket.server.pojo.dto.WorkOrderTypeAndFilterDto;
import com.egoo.ticket.server.pojo.dto.WorkOrderTypeMenuInputDto;
import com.egoo.ticket.server.pojo.entity.WorkOrderTypeMenu;
import com.egoo.ticket.server.utils.common.DbResponse;

import java.util.List;

/**
 * @author Administrator
 */
public interface WorkOrderTypeMenuService {
	/**
	 * TODO:获取过滤器菜单分页
	 * @param menuName
	 * @param currentPage
	 * @param pageSize
	 * @param tenantId
	 * @return
	 */
	DbResponse selectByName(String menuName,
							Integer currentPage,
							Integer pageSize,
							String tenantId);

	/**
	 * TODO 获取对应id的过滤器
	 * @param id
	 * @return
	 */
	WorkOrderTypeMenu selectById(Integer id,String tenantId);

	/**
	 * TODO 更新启用状态
	 * @param id
	 * @param userId
	 * @param status
	 * @return
	 */
	Integer updateUseStatus(Integer id, String userId, Integer status,String tenantId);

	/**
	 * TODO 插入
	 * @param workOrderTypeMenuInputDto
	 * @return
	 */
	Integer insertMenu(WorkOrderTypeMenuInputDto workOrderTypeMenuInputDto);

	/**
	 * TODO 更新过滤器菜单内容
	 * @param workOrderTypeMenuInputDto
	 * @return
	 */
	Integer updateContent(WorkOrderTypeMenuInputDto workOrderTypeMenuInputDto);

	/**
	 * TODO
	 * @return
	 */
	Integer selectOrderMax();

	/**
	 * TODO 通过名称查询过滤器菜单
	 * @param menuName
	 * @param tenantId
	 * @return
	 */
	WorkOrderTypeMenu selectByEqualsName(String menuName, String tenantId);

	/**
	 * TODO
	 * @param ordering
	 * @return
	 */
	WorkOrderTypeMenu selectByOrdering(Integer ordering);

	/**
	 * TODO  获取所有菜单列表
	 * @param currentPage
	 * @param pageSize
	 * @param tenantId
	 * @return
	 */
	PageOutputDto selectAll(Integer currentPage, Integer pageSize, String tenantId);

	/**
	 * TODO
	 * @param userId
	 * @param tenantId
	 * @return
	 */
	List<WorkOrderTypeAndFilterDto> getTypeMenuAndFilterMenuListByUserId(String userId, String tenantId);

	/**
	 * TODO
	 * @param userId
	 * @param workOrderTypeIdSrc
	 * @param workOrderTypeName
	 * @param tenantId
	 * @return
	 */
	Integer updateWorkOrderType(String userId, Long workOrderTypeIdSrc, String workOrderTypeName, String tenantId);

	/**
	 * TODO 翻译菜单可见人名
	 * @param menuVisibleType
	 * @param menuVisibleIds
	 * @param tenantId
	 * @return
	 */
	String translateMenuVisibleName(String menuVisibleType, String menuVisibleIds, String tenantId);
}
